﻿namespace LeRenard.Libraries.Templating.Templating.Mapping
{
    /// <summary>
    /// Defines a mapping between a template's placeholder and the value to generate for the placeholder.
    /// </summary>
    /// <typeparam name="TObject">The type the that will be taken into account when generating the value.</typeparam>
    internal interface IGenericTemplateMapping<TObject> : ITemplateMapping
    {
        /// <summary>
        /// Calculates, and returns the value for the placeholder.
        /// </summary>
        /// <param name="object">The object to be taken into account when generating the value.</param>
        /// <returns>The value in the form of a string.</returns>
        string GetValue(TObject @object);
    }
}
